import Vue from 'vue';
import Vuex from 'vuex';

// 普通文件导入
// import state from './state';
// import * as actions from './actions';
// import * as mutations from './mutations';

// Vue.use(Vuex);


// export default new Vuex.Store({
//   state,
//   mutations,
//   actions,
// });



// 直接当前文件使用
// Vue.use(Vuex);

// export default new Vuex.Store({
//   state: {
//     NotePad: [],
//   },
//   mutations: {
//     // *如果想要修改，使用this.$store.commit修改
//     saveNotePad(state, NotePad) {
//       state.NotePad = NotePad;
//     },
//   },
//   actions: {
//     // *如果想要修改，使用 this.$store.dispatch 修改
//     saveNotePad({ commit }, payload) {
//       commit('saveNotePad', payload);
//     },
//   },
// });


// 通过modules模块导入
Vue.use(Vuex)

// https://webpack.js.org/guides/dependency-management/#requirecontext
const modulesFiles = require.context('./modules', true, /\.js$/)


const modules = modulesFiles.keys().reduce((modules, modulePath) => {
  const moduleName = modulePath.replace(/^\.\/(.*)\.\w+$/, '$1')
  const value = modulesFiles(modulePath)
  modules[moduleName] = value.default
  return modules
}, {})

const store = new Vuex.Store({
  modules,
})

export default store
